JavaScript λͺ¨λ νλλ μ΄μ μ μ±λ₯ μν₯, λμ λ‘λ© λ° μ²λ¦¬ μ€λ²ν€λμ λν΄ μμλ΄ λλ€. μ΅μ ν μ λ΅κ³Ό λͺ¨λ² μ¬λ‘λ₯Ό νμ΅νμΈμ.
JavaScript λͺ¨λ νλλ μ΄μ μ±λ₯ μν₯: λμ λ‘λ© μ²λ¦¬ μ€λ²ν€λ
webpackμμ λμ ν κ°λ ₯ν κΈ°λ₯μΈ JavaScript λͺ¨λ νλλ μ΄μ μ λ°νμμ λμ μΌλ‘ λ‘λλκ³ κ³΅μ λ μ μλ λ 립μ μΌλ‘ λΉλ λ° λ°°ν¬λ μ ν리μΌμ΄μ (λͺ¨λ)μ μμ±νλ λ§μ΄ν¬λ‘ νλ‘ νΈμλ μν€ν μ²λ₯Ό ꡬμΆν μ μλλ‘ ν©λλ€. μ½λ μ¬μ¬μ©, λ 립μ μΈ λ°°ν¬ λ° ν μμ¨μ± μΈ‘λ©΄μμ μλΉν μ΄μ μ μ 곡νμ§λ§, λμ λ‘λ©κ³Ό κ²°κ³Όμ μΈ μ²λ¦¬ μ€λ²ν€λμ κ΄λ ¨λ μ±λ₯ μν₯μ μ΄ν΄νκ³ ν΄κ²°νλ κ²μ΄ μ€μν©λλ€. μ΄ κΈμμλ μ΄λ¬ν μΈ‘λ©΄μ λν΄ κΉμ΄ νκ³ λ€μ΄ μ΅μ νλ₯Ό μν ν΅μ°°λ ₯κ³Ό μ λ΅μ μ 곡ν©λλ€.
λͺ¨λ νλλ μ΄μ λ° λμ λ‘λ© μ΄ν΄
λͺ¨λ νλλ μ΄μ μ JavaScript μ ν리μΌμ΄μ μ΄ λΉλλκ³ λ°°ν¬λλ λ°©μμ κ·Όλ³Έμ μΌλ‘ λ³νμν΅λλ€. λͺ¨λ리μ λ°°ν¬ λμ μ ν리μΌμ΄μ μ μκ³ λ 립μ μΌλ‘ λ°°ν¬ κ°λ₯ν λ¨μλ‘ λλ μ μμ΅λλ€. λͺ¨λμ΄λΌκ³ νλ μ΄λ¬ν λ¨μλ λ€λ₯Έ λͺ¨λμμ μλΉν μ μλ κ΅¬μ± μμ, ν¨μ λ° μ 체 μ ν리μΌμ΄μ μ λ ΈμΆν μ μμ΅λλ€. μ΄λ¬ν λμ 곡μ μ ν΅μ¬μ λΉλ μμ μ ν¨κ» λ²λ€λ§λλ κ²μ΄ μλλΌ νμμ λ°λΌ λͺ¨λμ΄ λ‘λλλ λμ λ‘λ©μ λλ€.
μλ₯Ό λ€μ΄, λκ·λͺ¨ μ μμκ±°λ νλ«νΌμ΄ μ ν μΆμ² μμ§κ³Ό κ°μ μλ‘μ΄ κΈ°λ₯μ λμ νκ³ μΆλ€κ³ κ°μ ν΄ λ΄ μλ€. λͺ¨λ νλλ μ΄μ μ μ¬μ©νλ©΄ μΆμ² μμ§μ λ 립μ μΈ λͺ¨λλ‘ λΉλνκ³ λ°°ν¬ν μ μμ΅λλ€. κ·Έλ° λ€μ λ©μΈ μ μμκ±°λ μ ν리μΌμ΄μ μ μ¬μ©μκ° μ ν μμΈ νμ΄μ§λ‘ μ΄λν λλ§ μ΄ λͺ¨λμ λμ μΌλ‘ λ‘λνμ¬ μΆμ² μμ§μ μ½λλ₯Ό μ΄κΈ° μ ν리μΌμ΄μ λ²λ€μ ν¬ν¨ν νμλ₯Ό νΌν μ μμ΅λλ€.
μ±λ₯ μ€λ²ν€λ: μμΈ λΆμ
λμ λ‘λ©μ λ§μ μ΄μ μ μ 곡νμ§λ§ κ°λ°μκ° μΈμ§ν΄μΌ νλ μ±λ₯ μ€λ²ν€λλ₯Ό λμ ν©λλ€. μ΄ μ€λ²ν€λλ μ¬λ¬ μμμΌλ‘ ν¬κ² λΆλ₯λ μ μμ΅λλ€.
1. λ€νΈμν¬ μ§μ° μκ°
λͺ¨λμ λμ μΌλ‘ λ‘λνλ €λ©΄ λ€νΈμν¬λ₯Ό ν΅ν΄ κ°μ ΈμμΌ ν©λλ€. μ΄λ λͺ¨λμ λ‘λνλ λ° κ±Έλ¦¬λ μκ°μ΄ λ€νΈμν¬ μ§μ° μκ°μ μ§μ μ μΌλ‘ μν₯μ λ°λλ€λ κ²μ μλ―Έν©λλ€. μ¬μ©μμ μλ² κ°μ μ§λ¦¬μ 거리, λ€νΈμν¬ νΌμ‘ λ° λͺ¨λ ν¬κΈ°μ κ°μ μμΈμ΄ λͺ¨λ λ€νΈμν¬ μ§μ° μκ°μ κΈ°μ¬ν©λλ€. λ―Έκ΅μ μλ μλ²μ νΈμ€ν λ λͺ¨λμ μ‘μΈμ€νλ €λ νΈμ£Ό μ골μ μ¬μ©μλ₯Ό μμν΄ λ³΄μμμ€. ν΄λΉ μλ²μ κ°μ λμμ μλ μ¬μ©μλ³΄λ€ λ€νΈμν¬ μ§μ° μκ°μ΄ ν¨μ¬ λμ κ²μ λλ€.
μν μ λ΅:
- μ½ν μΈ μ μ‘ λ€νΈμν¬(CDN): λͺ¨λμ λ€μν μ§λ¦¬μ μ§μμ μμΉν μλ² λ€νΈμν¬μ λ°°ν¬ν©λλ€. μ΄λ κ² νλ©΄ μ¬μ©μμ λͺ¨λμ νΈμ€ν νλ μλ² κ°μ κ±°λ¦¬κ° μ€μ΄λ€μ΄ μ§μ° μκ°μ΄ μ΅μνλ©λλ€. Cloudflare, AWS CloudFront λ° Akamaiλ μΈκΈ° μλ CDN 곡κΈμ 체μ λλ€.
- μ½λ λΆν : λκ·λͺ¨ λͺ¨λμ λ μμ μ²ν¬λ‘ λλλλ€. μ΄λ κ² νλ©΄ νΉμ κΈ°λ₯μ νμν μ½λλ§ λ‘λν μ μμ΄ λ€νΈμν¬λ₯Ό ν΅ν΄ μ μ‘ν΄μΌ νλ λ°μ΄ν° μμ΄ μ€μ΄λλλ€. webpackμ μ½λ λΆν κΈ°λ₯μ΄ μ¬κΈ°μ νμμ μ λλ€.
- μΊμ±: μ¬μ©μμ λΈλΌμ°μ λ λ‘컬 λ¨Έμ μ λͺ¨λμ μ μ₯νκΈ° μν΄ μ κ·Ήμ μΈ μΊμ± μ λ΅μ ꡬνν©λλ€. μ΄λ κ² νλ©΄ λμΌν λͺ¨λμ λ€νΈμν¬λ₯Ό ν΅ν΄ λ°λ³΅μ μΌλ‘ κ°μ Έμ¬ νμκ° μμ΅λλ€. μ΅μ μ κ²°κ³Όλ₯Ό μν΄ HTTP μΊμ± ν€λ(Cache-Control, Expires)λ₯Ό νμ©ν©λλ€.
- λͺ¨λ ν¬κΈ° μ΅μ ν: νΈλ¦¬ μμ΄νΉ(μ¬μ©νμ§ μλ μ½λ μ κ±°), μ΅μν(μ½λ ν¬κΈ° μΆμ) λ° μμΆ(Gzip λλ Brotli μ¬μ©)κ³Ό κ°μ κΈ°μ μ μ¬μ©νμ¬ λͺ¨λ ν¬κΈ°λ₯Ό μ΅μνν©λλ€.
2. JavaScript νμ± λ° μ»΄νμΌ
λͺ¨λμ΄ λ€μ΄λ‘λλλ©΄ λΈλΌμ°μ λ JavaScript μ½λλ₯Ό νμ±νκ³ μ»΄νμΌν΄μΌ ν©λλ€. νΉν ν¬κ³ 볡μ‘ν λͺ¨λμ κ²½μ° μ΄ νλ‘μΈμ€λ κ³μ° μ§μ½μ μΌ μ μμ΅λλ€. JavaScriptλ₯Ό νμ±νκ³ μ»΄νμΌνλ λ° κ±Έλ¦¬λ μκ°μ μ¬μ©μ κ²½νμ μλΉν μν₯μ λ―Έμ³ μ§μ° λ° λκΉ νμμ μ λ°ν μ μμ΅λλ€.
μν μ λ΅:
- JavaScript μ½λ μ΅μ ν: λΈλΌμ°μ κ° νμ± λ° μ»΄νμΌ μ€μ μνν΄μΌ νλ μμ μ μ΅μννλ ν¨μ¨μ μΈ JavaScript μ½λλ₯Ό μμ±ν©λλ€. 볡μ‘ν ννμ, λΆνμν 루ν λ° λΉν¨μ¨μ μΈ μκ³ λ¦¬μ¦μ νΌν©λλ€.
- μ΅μ JavaScript ꡬ문 μ¬μ©: μ΅μ JavaScript ꡬ문(ES6+)μ μ’ μ’ μ΄μ κ΅¬λ¬Έλ³΄λ€ ν¨μ¨μ μ λλ€. νμ΄ν ν¨μ, ν νλ¦Ώ 리ν°λ΄ λ° κ΅¬μ‘° λΆν΄μ κ°μ κΈ°λ₯μ μ¬μ©νμ¬ λ κΉ¨λνκ³ μ±λ₯μ΄ λ°μ΄λ μ½λλ₯Ό μμ±ν©λλ€.
- ν νλ¦Ώ μ¬μ μ»΄νμΌ: λͺ¨λμ΄ ν νλ¦Ώμ μ¬μ©νλ κ²½μ° λΉλ μμ μ μ¬μ μ»΄νμΌνμ¬ λ°νμ μ»΄νμΌ μ€λ²ν€λλ₯Ό λ°©μ§ν©λλ€.
- WebAssembly κ³ λ €: κ³μ° μ§μ½μ μΈ μμ μ κ²½μ° WebAssembly μ¬μ©μ κ³ λ €νμμμ€. WebAssemblyλ JavaScriptλ³΄λ€ ν¨μ¬ λΉ λ₯΄κ² μ€νλ μ μλ μ΄μ§ λͺ λ Ήμ΄ νμμ λλ€.
3. λͺ¨λ μ΄κΈ°ν λ° μ€ν
νμ± λ° μ»΄νμΌ ν λͺ¨λμ μ΄κΈ°ννκ³ μ€νν΄μΌ ν©λλ€. μ¬κΈ°μλ λͺ¨λ νκ²½ μ€μ , λ΄λ³΄λ΄κΈ° λ±λ‘ λ° μ΄κΈ°ν μ½λ μ€νμ΄ ν¬ν¨λ©λλ€. λͺ¨λμ 볡μ‘ν μ’ μμ±μ΄ μκ±°λ μλΉν μ€μ μ΄ νμν κ²½μ° μ΄ νλ‘μΈμ€λ μ€λ²ν€λλ₯Ό μ λ°ν μ μμ΅λλ€.
μν μ λ΅:
- λͺ¨λ μ’ μμ± μ΅μν: λͺ¨λμ΄ μμ‘΄νλ μ’ μμ± μλ₯Ό μ€μ λλ€. μ΄λ κ² νλ©΄ μ΄κΈ°ν μ€μ μνν΄μΌ νλ μμ μ΄ μ€μ΄λλλ€.
- μ§μ° μ΄κΈ°ν: λͺ¨λμ΄ μ€μ λ‘ νμν λκΉμ§ μ΄κΈ°νλ₯Ό μ°κΈ°ν©λλ€. μ΄λ κ² νλ©΄ λΆνμν μ΄κΈ°ν μ€λ²ν€λλ₯Ό λ°©μ§ν μ μμ΅λλ€.
- λͺ¨λ λ΄λ³΄λ΄κΈ° μ΅μ ν: λͺ¨λμμ νμν κ΅¬μ± μμμ ν¨μλ§ λ΄λ³΄λ λλ€. μ΄λ κ² νλ©΄ μ΄κΈ°ν μ€μ μ€νν΄μΌ νλ μ½λ μμ΄ μ€μ΄λλλ€.
- λΉλκΈ° μ΄κΈ°ν: κ°λ₯ν κ²½μ° λͺ¨λ μ΄κΈ°νλ₯Ό λΉλκΈ°μ μΌλ‘ μννμ¬ λ©μΈ μ€λ λλ₯Ό μ°¨λ¨νμ§ μλλ‘ ν©λλ€. μ΄λ₯Ό μν΄ Promise λλ async/awaitλ₯Ό μ¬μ©ν©λλ€.
4. 컨ν μ€νΈ μ ν λ° λ©λͺ¨λ¦¬ κ΄λ¦¬
λͺ¨λμ λμ μΌλ‘ λ‘λν λ λΈλΌμ°μ λ λ€λ₯Έ μ€ν 컨ν μ€νΈ κ°μ μ νν΄μΌ ν©λλ€. μ΄ μ»¨ν μ€νΈ μ νμ λΈλΌμ°μ κ° νμ¬ μ€ν 컨ν μ€νΈμ μνλ₯Ό μ μ₯νκ³ λ³΅μν΄μΌ νλ―λ‘ μ€λ²ν€λλ₯Ό μ λ°ν μ μμ΅λλ€. λν λͺ¨λμ λμ μΌλ‘ λ‘λνκ³ μΈλ‘λνλ©΄ λΈλΌμ°μ μ λ©λͺ¨λ¦¬ κ΄λ¦¬ μμ€ν μ λΆλ΄μ μ£Όμ΄ κ°λΉμ§ μμ§ μΌμ μ€μ§κ° λ°μν μ μμ΅λλ€.
μν μ λ΅:
- λͺ¨λ νλλ μ΄μ κ²½κ³ μ΅μν: μ ν리μΌμ΄μ μ λͺ¨λ νλλ μ΄μ κ²½κ³ μλ₯Ό μ€μ λλ€. κ³Όλν νλλ μ΄μ μ 컨ν μ€νΈ μ ν μ€λ²ν€λλ₯Ό μ¦κ°μν¬ μ μμ΅λλ€.
- λ©λͺ¨λ¦¬ μ¬μ©λ μ΅μ ν: λ©λͺ¨λ¦¬ ν λΉ λ° ν λΉ ν΄μ λ₯Ό μ΅μννλ μ½λλ₯Ό μμ±ν©λλ€. λΆνμν κ°μ²΄ μμ±μ΄λ λ μ΄μ νμνμ§ μμ κ°μ²΄μ λν μ°Έμ‘°λ₯Ό μ μ§νλ κ²μ νΌν©λλ€.
- λ©λͺ¨λ¦¬ νλ‘νμΌλ§ λꡬ μ¬μ©: λΈλΌμ°μ κ°λ°μ λꡬλ₯Ό μ¬μ©νμ¬ λ©λͺ¨λ¦¬ λμλ₯Ό μλ³νκ³ λ©λͺ¨λ¦¬ μ¬μ©λμ μ΅μ νν©λλ€.
- μ μ μν μ€μΌ λ°©μ§: μλνμ§ μμ λΆμμ©μ λ°©μ§νκ³ λ©λͺ¨λ¦¬ κ΄λ¦¬λ₯Ό λ¨μννκΈ° μν΄ λͺ¨λ μνλ₯Ό κ°λ₯ν ν 격리ν©λλ€.
μ€μ μμ λ° μ½λ μ€λν«
μ΄λ¬ν κ°λ μ€ μΌλΆλ₯Ό μ€μ μμ λ₯Ό ν΅ν΄ μ€λͺ ν΄ λ³΄κ² μ΅λλ€.
μμ 1: webpackμ μ¬μ©ν μ½λ λΆν
webpackμ μ½λ λΆν κΈ°λ₯μ μ¬μ©νλ©΄ λκ·λͺ¨ λͺ¨λμ λ μμ μ²ν¬λ‘ λλ μ μμ΅λλ€. μ΄λ κ² νλ©΄ μ΄κΈ° λ‘λ μκ°μ ν¬κ² κ°μ νκ³ λ€νΈμν¬ μ§μ° μκ°μ μ€μΌ μ μμ΅λλ€.
// webpack.config.js
module.exports = {
// ...
optimization: {
splitChunks: {
chunks: 'all',
},
},
};
μ΄ κ΅¬μ±μ μ’ μμ±μ κΈ°λ°μΌλ‘ μ½λλ₯Ό λ μμ μ²ν¬λ‘ μλ λΆν ν©λλ€. λ€λ₯Έ μ²ν¬ κ·Έλ£Ήμ μ§μ νμ¬ λΆν λμμ λ μ¬μ©μ μ§μ ν μ μμ΅λλ€.
μμ 2: import()λ₯Ό μ¬μ©ν μ§μ° λ‘λ©
import() ꡬ문μ μ¬μ©νλ©΄ νμμ λ°λΌ λͺ¨λμ λμ μΌλ‘ λ‘λν μ μμ΅λλ€.
// Component.js
async function loadModule() {
const module = await import('./MyModule');
// λͺ¨λ μ¬μ©
}
μ΄ μ½λλ loadModule() ν¨μκ° νΈμΆλ λλ§ MyModule.jsλ₯Ό λ‘λν©λλ€. μ΄λ μ ν리μΌμ΄μ
μ νΉμ λΆλΆμμλ§ νμν λͺ¨λμ λ‘λν λ μ μ©ν©λλ€.
μμ 3: HTTP ν€λλ₯Ό μ¬μ©ν μΊμ±
μλ²λ₯Ό ꡬμ±νμ¬ μ μ ν HTTP μΊμ± ν€λλ₯Ό μ μ‘νμ¬ λΈλΌμ°μ κ° λͺ¨λμ μΊμ±νλλ‘ μ§μν©λλ€.
Cache-Control: public, max-age=31536000 // 1λ
λμ μΊμ±
μ΄ ν€λλ λΈλΌμ°μ μ λͺ¨λμ 1λ
λμ μΊμ±νλλ‘ μ§μν©λλ€. max-age κ°μ μΊμ± μꡬ μ¬νμ λ°λΌ μ‘°μ νμμμ€.
λμ λ‘λ© μ€λ²ν€λ μ΅μν μ λ΅
λͺ¨λ νλλ μ΄μ μμ λμ λ‘λ©μ μ±λ₯ μν₯μ μ΅μννλ μ λ΅ μμ½μ λλ€.
- λͺ¨λ ν¬κΈ° μ΅μ ν: νΈλ¦¬ μμ΄νΉ, μ΅μν, μμΆ(Gzip/Brotli).
- CDN νμ©: μ§μ° μκ° κ°μλ₯Ό μν΄ λͺ¨λμ μ μΈκ³μ μΌλ‘ λ°°ν¬ν©λλ€.
- μ½λ λΆν : λκ·λͺ¨ λͺ¨λμ λ μκ³ κ΄λ¦¬νκΈ° μ¬μ΄ μ²ν¬λ‘ λλλλ€.
- μΊμ±: HTTP ν€λλ₯Ό μ¬μ©νμ¬ μ κ·Ήμ μΈ μΊμ± μ λ΅μ ꡬνν©λλ€.
- μ§μ° λ‘λ©: λͺ¨λμ΄ νμν λλ§ λ‘λν©λλ€.
- JavaScript μ½λ μ΅μ ν: ν¨μ¨μ μ΄κ³ μ±λ₯μ΄ λ°μ΄λ JavaScript μ½λλ₯Ό μμ±ν©λλ€.
- μ’ μμ± μ΅μν: λͺ¨λλΉ μ’ μμ± μλ₯Ό μ€μ λλ€.
- λΉλκΈ° μ΄κΈ°ν: λͺ¨λ μ΄κΈ°νλ₯Ό λΉλκΈ°μ μΌλ‘ μνν©λλ€.
- μ±λ₯ λͺ¨λν°λ§: λΈλΌμ°μ κ°λ°μ λꡬμ μ±λ₯ λͺ¨λν°λ§ λꡬλ₯Ό μ¬μ©νμ¬ λ³λͺ© νμμ μλ³ν©λλ€. Lighthouse, WebPageTest λ° New Relicκ³Ό κ°μ λκ΅¬κ° λ§€μ° μ μ©ν μ μμ΅λλ€.
μ¬λ‘ μ°κ΅¬ λ° μ€μ μμ
μ±λ₯ λ¬Έμ λ₯Ό ν΄κ²°νλ©΄μ λͺ¨λ νλλ μ΄μ μ μ±κ³΅μ μΌλ‘ ꡬνν μ€μ μμ λ₯Ό μ΄ν΄λ³΄κ² μ΅λλ€.
- νμ¬ A (μ μμκ±°λ): μ ν μμΈ νμ΄μ§μ λν λ§μ΄ν¬λ‘ νλ‘ νΈμλ μν€ν μ²λ₯Ό ꡬμΆνκΈ° μν΄ λͺ¨λ νλλ μ΄μ μ ꡬννμ΅λλ€. μ½λ λΆν λ° μ§μ° λ‘λ©μ μ¬μ©νμ¬ νμ΄μ§μ μ΄κΈ° λ‘λ μκ°μ μ€μμ΅λλ€. λν CDNμ μ κ·Ήμ μΌλ‘ νμ©νμ¬ μ μΈκ³ μ¬μ©μμκ² λͺ¨λμ μ μνκ² μ 곡ν©λλ€. μ£Όμ μ±λ₯ μ§ν(KPI)λ νμ΄μ§ λ‘λ μκ° 20% κ°μμμ΅λλ€.
- νμ¬ B (κΈμ΅ μλΉμ€): λͺ¨λμ λμ보λ μ ν리μΌμ΄μ μ ꡬμΆνκΈ° μν΄ λͺ¨λ νλλ μ΄μ μ μ¬μ©νμ΅λλ€. μ¬μ©νμ§ μλ μ½λλ₯Ό μ κ±°νκ³ μ’ μμ±μ μ΅μννμ¬ λͺ¨λ ν¬κΈ°λ₯Ό μ΅μ ννμ΅λλ€. λν λΉλκΈ° μ΄κΈ°νλ₯Ό ꡬννμ¬ λͺ¨λ λ‘λ μ€μ λ©μΈ μ€λ λλ₯Ό μ°¨λ¨νμ§ μλλ‘ νμ΅λλ€. μ£Όμ λͺ©νλ λμ보λ μ ν리μΌμ΄μ μ μλ΅μ±μ κ°μ νλ κ²μ΄μμ΅λλ€.
- νμ¬ C (λ―Έλμ΄ μ€νΈλ¦¬λ°): μ¬μ©μ κΈ°κΈ° λ° λ€νΈμν¬ μ‘°κ±΄μ λ°λΌ λ€λ₯Έ λΉλμ€ νλ μ΄μ΄λ₯Ό λμ μΌλ‘ λ‘λνκΈ° μν΄ λͺ¨λ νλλ μ΄μ μ νμ©νμ΅λλ€. μ½λ λΆν λ° μΊμ±μ μ‘°ν©νμ¬ μνν μ€νΈλ¦¬λ° κ²½νμ 보μ₯νμ΅λλ€. λ²νΌλ§μ μ΅μννκ³ λΉλμ€ μ¬μ νμ§μ κ°μ νλ λ° μ€μ μ λμμ΅λλ€.
λͺ¨λ νλλ μ΄μ λ° μ±λ₯μ λ―Έλ
λͺ¨λ νλλ μ΄μ μ λΉ λ₯΄κ² λ°μ νλ κΈ°μ μ΄λ©°, μ§μμ μΈ μ°κ΅¬ κ°λ° λ Έλ ₯μ μ±λ₯μ λμ± ν₯μμν€λ λ° μ€μ μ λκ³ μμ΅λλ€. λ€μκ³Ό κ°μ μμμ λ°μ μ κΈ°λν μ μμ΅λλ€.
- κ°μ λ λΉλ λꡬ: λΉλ λꡬλ λͺ¨λ νλλ μ΄μ μ λ μ μ§μνκ³ λͺ¨λ ν¬κΈ° λ° λ‘λ μ±λ₯μ μ΅μ ννκΈ° μν΄ κ³μ λ°μ ν κ²μ λλ€.
- ν₯μλ μΊμ± λ©μ»€λμ¦: μΊμ± ν¨μ¨μ±μ λμ± κ°μ νκ³ λ€νΈμν¬ μ§μ° μκ°μ μ€μ΄κΈ° μν΄ μλ‘μ΄ μΊμ± λ©μ»€λμ¦μ΄ κ°λ°λ κ²μ λλ€. Service Workerλ μ΄ μμμ ν΅μ¬ κΈ°μ μ λλ€.
- κ³ κΈ μ΅μ ν κΈ°μ : λͺ¨λ νλλ μ΄μ κ³Ό κ΄λ ¨λ νΉμ μ±λ₯ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ μλ‘μ΄ μ΅μ ν κΈ°μ μ΄ λ±μ₯ν κ²μ λλ€.
- νμ€ν: λͺ¨λ νλλ μ΄μ νμ€ν λ Έλ ₯μ μνΈ μ΄μ©μ±μ 보μ₯νκ³ κ΅¬ν 볡μ‘μ±μ μ€μ΄λ λ° λμμ΄ λ κ²μ λλ€.
κ²°λ‘
JavaScript λͺ¨λ νλλ μ΄μ μ λͺ¨λμμ΄κ³ νμ₯ κ°λ₯ν μ ν리μΌμ΄μ μ ꡬμΆν μ μλ κ°λ ₯ν λ°©λ²μ μ 곡ν©λλ€. κ·Έλ¬λ λμ λ‘λ©κ³Ό κ΄λ ¨λ μ±λ₯ μν₯μ μ΄ν΄νκ³ ν΄κ²°νλ κ²μ΄ μ€μν©λλ€. μ΄ κΈμμ λ Όμλ μμλ₯Ό μ μ€νκ² κ³ λ €νκ³ κΆμ₯λλ μ λ΅μ ꡬνν¨μΌλ‘μ¨ μ€λ²ν€λλ₯Ό μ΅μννκ³ μννκ³ λ°μμ±μ΄ λ°μ΄λ μ¬μ©μ κ²½νμ 보μ₯ν μ μμ΅λλ€. μ ν리μΌμ΄μ μ΄ λ°μ ν¨μ λ°λΌ μ΅μ μ μ±λ₯μ μ μ§νκΈ° μν΄ μ§μμ μΈ λͺ¨λν°λ§κ³Ό μ΅μ νκ° μ€μν©λλ€.
μ±κ³΅μ μΈ λͺ¨λ νλλ μ΄μ ꡬνμ ν΅μ¬μ μ½λ κ΅¬μ± λ° λΉλ ꡬμ±μμ λ°°ν¬ λ° λͺ¨λν°λ§μ μ΄λ₯΄κΈ°κΉμ§ κ°λ° νλ‘μΈμ€μ λͺ¨λ μΈ‘λ©΄μ κ³ λ €νλ μ 체μ μΈ μ κ·Ό λ°©μμ΄λΌλ κ²μ κΈ°μ΅νμμμ€. μ΄ μ κ·Ό λ°©μμ μ±νν¨μΌλ‘μ¨ λͺ¨λ νλλ μ΄μ μ μ μ¬λ ₯μ μ΅λν λ°ννκ³ μ§μ μΌλ‘ νμ μ μ΄κ³ κ³ μ±λ₯ μ ν리μΌμ΄μ μ ꡬμΆν μ μμ΅λλ€.